package com.ruoyi.jxsx.util;

import java.util.Date;
import java.util.Objects;

/**
 * 课程状态工具类
 * 提供基于开始时间和结束时间的课程状态判断
 */
public class CourseStatusUtil {

    /**
     * 获取课程状态
     *
     * @param startTime 课程开始时间
     * @param endTime 课程结束时间
     * @return 课程状态码
     *         1 - 课程未开始
     *         2 - 课程进行中
     *         3 - 课程已结束
     * @throws IllegalArgumentException 如果startTime或endTime为null
     */
    public static int getCourseStatus(Date startTime, Date endTime) {
        // 空安全检查
        Objects.requireNonNull(startTime, "开始时间不能为null");
        Objects.requireNonNull(endTime, "结束时间不能为null");

        // 获取当前时间
        Date currentTime = new Date();

        // 判断课程状态
        if (currentTime.before(startTime)) {
            return 1; // 课程未开始
        } else if (!currentTime.before(startTime) && !currentTime.after(endTime)) {
            return 2; // 课程进行中
        } else {
            return 3; // 课程已结束
        }
    }
}